#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/*
 * Copyright © 2014, Finium Sdn Bhd, All Rights Reserved
 * 
 * FieldExtensions.java
 * Modification History
 * *************************************************************
 * Date				Author						Comment
 * Jun 21, 2012		Venkaiah Chowdary Koneru	Created
 * *************************************************************
 */
package ${package}.dto;

import java.io.Serializable;
import java.util.Date;

import ${package}.support.JsonDateSerializer;

import org.codehaus.jackson.map.annotate.JsonSerialize;

/**
 * Extension table mapping object
 * 
 * @author Venkaiah Chowdary Koneru
 */
public class FieldExtensions implements Serializable
{
    private static final long serialVersionUID = 1L;

    private String attribute;
    private Integer intValue;
    private Double doubleValue;
    private Date dateValue;
    private String strValue;

    private String value;
    private String uom;

    /**
     * @return the attribute
     */
    public String getAttribute()
    {
        return attribute;
    }

    /**
     * @param attribute
     *            the attribute to set
     */
    public void setAttribute(String attribute)
    {
        this.attribute = attribute;
    }

    /**
     * @return the intValue
     */
    public Integer getIntValue()
    {
        return intValue;
    }

    /**
     * @param intValue
     *            the intValue to set
     */
    public void setIntValue(Integer intValue)
    {
        this.intValue = intValue;
    }

    /**
     * @return the dateValue
     */
    @JsonSerialize(using = JsonDateSerializer.class)
    public Date getDateValue()
    {
        return (dateValue != null) ? new Date(dateValue.getTime()) : null;
    }

    /**
     * @param dateValue
     *            the dateValue to set
     */
    public void setDateValue(Date dateValue)
    {
        this.dateValue = (dateValue != null) ? new Date(dateValue.getTime())
                : null;
    }

    /**
     * @return the strValue
     */
    public String getStrValue()
    {
        return strValue;
    }

    /**
     * @param strValue
     *            the strValue to set
     */
    public void setStrValue(String strValue)
    {
        this.strValue = strValue;
    }

    /**
     * @return the value
     */
    public String getValue()
    {
        return value;
    }

    /**
     * @param value
     *            the value to set
     */
    public void setValue(String value)
    {
        this.value = value;
    }

    /**
     * 
     * @return the unit of measurement
     */
    public String getUom()
    {
        return uom;
    }

    /**
     * @param uom
     *            the unit of measurement to set
     */
    public void setUom(String uom)
    {
        this.uom = uom;
    }

    /**
     * @return the doubleValue
     */
    public Double getDoubleValue()
    {
        return doubleValue;
    }

    /**
     * @param doubleValue
     *            the doubleValue to set
     */
    public void setDoubleValue(Double doubleValue)
    {
        this.doubleValue = doubleValue;
    }
}
